1. Field of the Invention
The invention relates to memory arrays in Integrated Circuits (ICs). More particularly, the invention relates to a circuit and method for incrementally selecting and deselecting groups of word lines in a Programmable Read-Only Memory (PROM) array, useful for stress testing Electrically Erasable PROMs (EEPROMs), for example.
2. Description of the Background Art
In IC memory arrays such as PROMs, situations arise in which it is desirable to perform an operation on all locations in the array. One such situation is that of performing a high voltage stress test on each location in an EEPROM array. Another is that of presetting all bit values in the array to a known value, such as zero.
FIG. 1 shows a prior art memory cell 200 for an EEPROM. Such a memory cell typically consists of a single storage transistor 201. During a read operation, storage transistor 201 either pulls precharged-high bit line BLB to ground GND, or leaves bit line BLB high. Storage transistor 201 is not a typical N-channel transistor, as storage transistor 201 has an extra polysilicon gate called a floating gate (FG). Floating gate FG determines the threshold of storage transistor 201, based on whether or not there is a charge on floating gate FG. Storage transistor 201 is also controlled by control gate CG, driven by word line WL.
When EEPROM memory cell 200 is not programmed, there is no charge stored on floating gate FG. The threshold of storage transistor 201 is about the same as that of a typical N-channel transistor. Therefore, when word line WL goes high (selecting memory cell 200), storage transistor 201 is turned on and bit line BLB is pulled low. The sensing circuit for the EEPROM interprets the low value on bit line BLB as a high bit value. Therefore, the unprogrammed value for the EEPROM memory cell is high.
When EEPROM memory cell 200 is programmed, a negative charge is placed on floating gate FG, raising the threshold of storage transistor 201. (EEPROM storage transistors, and methods for programming them, are well-known in the art of EEPROM design, and therefore are not described herein.) When word line WL goes high, storage transistor 201 does not turn on. Bit line BLB is not pulled low. The sensing circuit for the EEPROM interprets the high value on bit line BLB as a low bit value. Therefore, the programmed value for the EEPROM memory cell is low.
FIG. 2 shows a cross-sectional diagram of storage transistor 201 from EEPROM memory cell 200 of FIG. 1. Reference to FIG. 1 shows that one of the two diffusion regions N+ in substrate P is tied to ground GND, and the other to bit line BLB. An oxide layer OX1 (or other dielectric layers) separates control gate CG from floating gate FG. Oxide layer OX1 is typically about 200 angstroms thick (or the dielectric equivalent thereof) at point "a" between floating gate FG and control gate CG. An oxide layer OX2 separates floating gate FG from substrate P and diffusion regions N+. Oxide layer OX2 is typically about 90-120 Angstroms thick at point "b" between floating gate FG and substrate P. For the unprogrammed cell, if oxide layer OX2 is too thin or is otherwise defective, oxide layer OX2 may begin to break down and conduct an electrical charge. For the programmed cell, if oxide layer OX1 is too thin or is otherwise defective, a similar charge loss may occur. In either case, floating gate FG will not hold a negative charge and storage transistor 201 will cease to operate correctly. Therefore, it is desirable to have the capability of testing the integrity of oxide layers OX1 and OX2 at about the voltage level used while programming the EEPROM. Such a test is referred to as a "stress test". (The term "stress test" as used herein also includes testing the integrity of the oxide layers at a voltage level other than the programming voltage.)
A stress test is typically performed in an EEPROM by selecting a group of one or more word lines in the memory array and applying an overvoltage, suitable for stressing the oxide layers, to the selected word lines. (This overvoltage is typically the voltage level used while programming the EEPROM.) The values in the selected memory cells are then read back to determine whether the storage transistors still function correctly, i.e., whether the oxide layer has maintained its integrity. Another group of word lines is then selected, and the test is repeated. If there are many groups of word lines, the stress test can take an undesirably long time to complete.
It is desirable to perform operations such as stress tests in a short amount of time. Given only this consideration, such an operation could be performed in a single clock cycle on receiving a single initiating signal, by simultaneously selecting all word lines in the EEPROM memory cell array. However, switching all word lines simultaneously might result in a large power surge that could burn out the metal power lines in the IC. It is known that having a large number of simultaneous voltage transitions in an IC is undesirable. For example, to reduce ground bounce caused by the simultaneous switching of large numbers of I/O, the Xilinx XC4000-family devices introduce a deliberate, unclocked skew in the enablement of I/O buffers. (This method is described on page 4-28 of the Xilinx 1996 Data Book entitled "The Programmable Logic Data Book", available from Xilinx, Inc., 2100 Logic Drive, San Jose, Calif. 95124, which page is incorporated herein by reference. (Xilinx, Inc., owner of the copyright, has no objection to copying this and other pages referenced herein but otherwise reserves all copyright rights whatsoever.)) It would be desirable to eliminate potentially destructive power surges during EEPROM stress tests, while reducing the amount of time required to perform a stress test on the memory array.